package com.smartwebx.ha.biz.assign;

import java.util.List;
import java.util.Map.Entry;

import com.smartwebx.ha.dal.assign.bean.HaUser;
import com.smartwebx.ha.usebean.Paging;
import com.smartwebx.ha.usebean.TableData;

public interface HaUserManager {
	
	/**
	 * 根据用户id 查询
	 * @param userId
	 * @return
	 */
	HaUser findById(int userId);
	
	/**
	 * 根据用户名与密码判断登陆，并且比较 is_login 是否开启
	 * 1 登陆成功，-1 用户被锁定 0 用户名或密码错误
	 * @param userName
	 * @param pass
	 * @return
	 */
	Entry<Integer, HaUser> loginUser(String userName, String pass);

	/**
	 * 查询所有用户，分页
	 * @return
	 */
	TableData<HaUser> queryUserByPage(Paging page,Integer groupId,String code);
	
	
	/**
	 * 修改用户密码
	 * 
	 * @param userId
	 * @param newPass
	 * @return
	 */
	boolean changePass(int userId, String newPass);
	
	/**
	 * 重置密码
	 * @param userId
	 * @return
	 */
	boolean resetPass(int userId);

	/**
	 * 用户资料更新，不进行密码更新
	 * 
	 * @param newUser
	 * @return
	 */
	boolean updateUser(HaUser newUser);

	/**
	 * 添加用户，true 添加成功 false 添加失败
	 * 
	 * @return
	 */
	boolean addUser(HaUser user);
	
	/**
	 * 添加用户，并获得主键值
	 * @param user
	 * @return
	 */
	int addUserGetId(HaUser user);
	
	/**
	 * 判断用户名是否重复，true 没有重复  false 有重复
	 * 
	 * @return
	 */
	boolean checkName(String name);

	/**
	 * 锁定用户
	 * 
	 * @param userId
	 * @return
	 */
	boolean lockedUser(int userId);

	/**
	 * 解锁用户
	 * 
	 * @param userId
	 * @return
	 */
	boolean unLockedUser(int userId);

	/**
	 * 删除用户
	 * 
	 * @return
	 */
	boolean delUser(int userId);

	List<HaUser> select(int haAreaId);

	List<HaUser> getUserData(String type, String param1);
}
